package steveshrader.budget.client;

import java.util.Date;
import java.util.List;

import steveshrader.budget.client.dto.Expense;
import steveshrader.budget.client.dto.Vendor;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * The async counterpart of <code>BudgetService</code>.
 */
public interface BudgetServiceAsync {
        void addExpense(Expense expense, AsyncCallback<String> callback);
        void addExpenses(List<Expense> expenses, AsyncCallback<String> callback);
        void deleteExpense(Long expenseId, AsyncCallback<String> callback);
        void getVendors(AsyncCallback<List<Vendor>> callback);
        void getExpenses(Date startDate, Date endDate, String vendor, AsyncCallback<List<Expense>> callback);
}